feat: restore git as the main sync channel (dual-channel with couch)#96
Merged
Conversation
Reverts #89 (couch-only). Git = default channel for every memory; a memory the resolution advertises on couch routes to the couch controller (server decides per memory, future /api/me capabilities gate the paid couch tier). - src/git/* + sync-controller restored; couch impl stays at master (resilient syncNow, missing-leaf abort, pendingCount) - previewSync routes per channel: git = both-way controller preview, couch = honest outgoing count (#92 semantics kept); SyncPreview.incoming optional - fake router advertises git_endpoint; lifecycle 10 rewritten for dual-channel
vreshch
marked this pull request as ready for review
July 17, 2026 22:49
|
🎉 PR Validation ✅ PASSED Commit: Checks:
Ready to merge! ✨ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Direction (2026-07-17)
Reverses the couch-only pivot: two channels - git is main, CouchDB becomes an optional channel for paid customers later. This reverts #89 before it ever ships (released 0.2.3 users are still on git; nothing user-facing regresses).
What
src/git/*+ sync-controller + git deps (isomorphic-git, diff3) restored; git = default channel for every memory.syncNowreturning{error}, missing-leaf pull abort,pendingCount, durable tombstones) - the revert's regressions tosrc/couch/*were dropped.channelForVault); a memory advertised on couch syncs via couch, everything else via git. Future:/api/mecapabilities gate which users may have couch memories. No couch UI (fully hidden), per product call.previewSyncroutes per channel: git = both-way controller preview; couch = the honest outgoing count from fix: honest first-sync preview count; drop Advanced testing UI #92 (SyncPreview.incomingnow optional; modal hides the ↓ line for couch).git_endpoint(dual-channel server shape); lifecycle test 10 rewritten from "non-couch memory = error" to "non-couch memory routes to git and never touches couch".Verify
npm run verifygreen - 170 tests / 31 files (restored git suite + couch suite + integration harness).